package manage;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import model.Aluno;
import model.Aula;
import model.Disciplina;
import model.dao.AlunoDAO;
import model.dao.AulaDAO;
import model.dao.DisciplinaDAO;

import org.primefaces.model.DualListModel;

@ManagedBean
public class AulaBean {

	
	private Aula aula = new Aula();
	private Disciplina disciplina =  new Disciplina();
	private Aluno aluno = new Aluno();
	private List<Aula> aulas;
	
    private DualListModel<String> alunos;  

	public AulaBean() {
		super();
		

		List<String>  origem = new ArrayList<String>();
		List<String> destino = new ArrayList<String>();
		
		
		List<Aluno> a = AlunoDAO.getInstance().buscarTodosAluno();
		for (Aluno a2: a){			
			origem.add(a2.getLogin());
		}
		
		alunos = new DualListModel<String>(origem, destino);
	}
	
	public String incluirAula(){
		
		Disciplina d2 = DisciplinaDAO.getInstance().buscaDisciplinaPorNome(disciplina.getNome());
		List<Aluno> alunosAdd = new ArrayList<Aluno>();
		
		if (d2 != null)
			disciplina = d2;
		
		LoginBean login = (LoginBean)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("loginBean");
		

		
		if (login.isIndAluno()){
			aluno = AlunoDAO.getInstance().buscaAluno(login.getLogin());
			
			alunosAdd.add(aluno);			
		}else{
			for(String a : alunos.getTarget()){
				System.out.println("Tela " + a);
				Aluno aluno = AlunoDAO.getInstance().buscaAluno(a);
				System.out.println("Componente " + aluno.getLogin());
				
				alunosAdd.add(aluno);
			}
		}

		
		aula.setAlunos(alunosAdd);
		aula.setDisciplinas(disciplina);
		AulaDAO.getInstance().adiciona(aula);
		
		return "home";
	}



	public Aula getAula() {
		return aula;
	}



	public void setAula(Aula aula) {
		this.aula = aula;
	}



	public Disciplina getDisciplina() {
		return disciplina;
	}



	public void setDisciplina(Disciplina disciplina) {
		this.disciplina = disciplina;
	}



	public Aluno getAluno() {
		return aluno;
	}



	public void setAluno(Aluno aluno) {
		this.aluno = aluno;
	}



	public List<Aula> getAulas() {
		LoginBean login = (LoginBean)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("loginBean");
		
		List<Aula> aulas = new ArrayList<Aula>();
		
		if (login.isIndAluno())
			aulas = AulaDAO.getInstance().buscarTodasAulasPorAluno(login.getLogin());
		else
			aulas = AulaDAO.getInstance().buscarTodasAulasPorProfessor(login.getLogin());
		
		return aulas;
	}



	public void setAulas(List<Aula> aulas) {
		this.aulas = aulas;
	}

	public DualListModel<String> getAlunos() {
		return alunos;
	}

	public void setAlunos(DualListModel<String> alunos) {
		this.alunos = alunos;
	}







}
